﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Library
{
    public class Usuario
    {
        public static List<usp_Usuario_SelectResult> Consulta(int idUsuario = 0)
        {
            using (var db = new dbBaseDataContext())
            {
                var ret = db.usp_Usuario_Select(idUsuario);
                return ret.ToList();
            }
        }
        public static List<Tb_Usuario> ConsultaTB(int idUsuario = 0)
        { 
            using (var db = new dbBaseDataContext())
            {
                return (from l in db.Tb_Usuarios
                        where l.IdUsuario == idUsuario || idUsuario == 0
                        select l).ToList();
            }
        }

        public static void Insert(Tb_Usuario usuario)
        {
            using (var db = new dbBaseDataContext())
            {
                db.Tb_Usuarios.InsertOnSubmit(usuario);
                db.SubmitChanges();
            }
        }

        public static void Delete(int idusuario)
        {
            using (var db = new dbBaseDataContext())
            {
                var usuario = (from l in db.Tb_Usuarios
                               where l.IdUsuario == idusuario
                               select l).ToList();

                db.Tb_Usuarios.DeleteAllOnSubmit(usuario);
                db.SubmitChanges();
            }
        }

        public static void Update(Tb_Usuario usuario)
        {
            using (var db = new dbBaseDataContext())
            {
                var usuarioRet = (  from l in db.Tb_Usuarios
                                    where l.IdUsuario == usuario.IdUsuario
                                    select l).First();

                usuarioRet.Nome = usuario.Nome;

                db.SubmitChanges();
            }
        }

        public static int UltimoId()
        {
            using (var db = new dbBaseDataContext())
            {
                return (from l in db.Tb_Usuarios
                            orderby l.IdUsuario descending
                            select l).First().IdUsuario;
            }
        }

    }
}
